dofile "lib/radical.lua"

function ct_tile(s) 
  return const.path.gfx.."game/city/"..s..".jpg"; 
end

function ka_tile(s) 
  return const.path.gfx.."game/ka/"..s..".jpg"; 
end

function sb_tile(s) 
  return const.path.gfx.."game/subway/"..s..".jpg"; 
end

function tile(s) 
  return const.path.gfx.."game/doc/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."1-deadhour/doc/"..s..".xml";
end

doc_player = musplayer.player {
   sfx("long_static2"):inside("start")
  ,sfx("footsteps"):inside("ascend")
  ,sfx("doorbell"):inside("bell1")
  ,sfx("doorunlockopen"):inside("open1")
  ,sfx("doorclose_echo"):inside("away1")
  ,mus("satiate_strings"):inside("away2")
  ,mute():fade(3000,3000):inside("drugstore")
  ,mus("satiate_strings"):inside("street2")
  ,mute():inside("descend1")
  ,sfx("metalstairs"):inside("descend2"):always()
}

main = engine.main {
   start        = chain_ {
                     episode_("1-doc")
                    ,musplayer_("doc_player")
                    ,walk_("start")
                  }
  ,finish       = gamefile_("1-deadhour/subway.lua")
}

start = pause {
   time         = 2500
  ,next         = "radio1"
}

radio1 = cutscene {
   fading       = 60
  ,tile         = { ct_tile "cityview2", 0, 0 }
  ,bounds       = { 40, 460, 890}
  ,dsc          = [[-- Как нам сообщили, многие по-прежнему испытывают проблемы с приемом сигнала -- даже по нашей новой частоте. Ну что ж, мы не сдаемся,
                    и будем продолжать искать пути улучшить качество приема... Для тех же, кто нас по-прежнему слышит, расскажу немного о нашей программе на конец
                    дня. Буквально через несколько минут вас ждут новости из мира музыки. Потом в нашей студии будет особый гость, это пока что небольшой сюрприз
                    для вас. Ну и наконец, по вашим заявкам, мы сегодня повторяем выпуск передачи "Неограненный алмаз". Очень надеюсь, что сегодняшний вечер вы
                    проведете с нами.]]
  ,next         = "radio2"
}

radio2 = cutscene {
   tile         = { ct_tile "cityview2", 0, 0 }
  ,bounds       = { 40, 460, 890}
  ,dsc          = [[-- Да, и если ваш рабочий день уже подошел к концу и вы собираетесь ехать домой, имейте ввиду, что из-за серьезной аварии движение по 
                    четырнадцатой магистрали парализовано практически полностью. И, судя по всему, ситуация наладится еще нескоро. Если верить навигационному 
                    спутнику, то средняя скорость машин на этом участке составляет, как вы можете догадаться, ноль километров в час... Но достаточно о грустном. 
                    Пробки -- это вовсе не повод для плохого настроения. Поэтому передаю слово своему соведущему...]]
  ,next         = "ascend"
}

ascend = pause {
   time         = 8000
  ,next         = "door"
}

door = scene {
   tile         = ctile "window"
  ,bounds       = { 200, nil, 700 }
  ,dsc          = "Квартира 354. Именно здесь и должен жить доктор Кочевников. Остается надеяться, что он уже вернулся домой."
  ,alwaysdsc    = true
  ,obj          = { "door_bell" }
}

door_bell = staticitem {
   dsc          = "Рядом с дверью в квартиру есть {звонок}."
  ,act          = walk_("bell1")
}

bell1 = pause {
   time         = 2000
  ,next         = "doc_dlg1"
}

doc_dlg1 = dialog {
   bounds       = { 200, 260, 600 }
  ,dlg          = dxml "kochevnikov1"
  ,dsc          = "-- Кто там?"
}

open1 = pause {
   time         = 2000
  ,next         = "doc_dlg2"
}

doc_dlg2 = dialog {
   tile         = { ctile "opendoor", 700, 20 }
  ,bounds       = { nil, nil, 660 }
  ,dlg          = dxml "kochevnikov2"
  ,dsc          = "-- О, Боже мой! Люди, да когда это закончится? Почему вы вообще решили ко мне обратиться?"
}

away1 = pause {
   time         = 4000
  ,next         = "away2"
}

away2 = pause {
   tile         = tile "shadowstreet2"
  ,fading       = 60
  ,time         = 1000
  ,next         = "out1"
}

out1 = scene {
   tile         = tile "shadowstreet2"
  ,bounds       = { 300, nil, 550 }
  ,obj          = { "out1_sign" }
  ,dsc          = [[На улице быстро начинало темнеть, все небо затянули грозовые облака. К тому же поднялся сильный промозглый ветер, 
                    какой бывает только осенью, в предвестие холодов. Шелест листвы деревьев напоминал шум дождя.^ Катя вдруг поняла,
                    что даже не спросила у Кочевникова, где находится та самая аптека. Она даже подумала о том, чтобы вернуться и 
                    уточнить адрес, но не решилась. По крайней мере она запомнила название лекарства. Ультвазин.^^]]
  ,nav          = {
                     right = vw("Вверх по улице", "out3")
                    ,left = vw("Вниз по улице", "out2")
                  }
}

out1_sign = staticitem {
   dsc          = "На стене дома висит {вывеска} с названием улицы."
  ,act          = [[Ул. Садовническая, 21. Должно быть, аптека находится на этой же улице. В противном случае искать ее бесполезно. К тому же, 
                    уже близится вечер, а Катя живет на другом конце города. Если она сильно задержится здесь, то может не успеть вернуться 
                    домой до начала комендантского часа.]]
  ,showonce     = true
}

out2 = scene {
   tile         = { tile "shadowstreet3", 440, 20 }
  ,bounds       = { nil, nil, 600 }
  ,obj          = { "out2_sign" }
  ,dsc          = "Кате приходится идти против ветра, и в лицо ей с асфальта летит колкая пыль. Можно подумать, что скоро начнется самый настоящий шторм.^^"
  ,nav          = {
                     right = vw("Вверх по улице", "out1")
                    ,left = vw("Вниз по улице", "metro")
                  }
}

out2_sign = staticitem {
   dsc          = "На стене дома висит {вывеска} с названием улицы."
  ,act          = "Ул. Садовническая, 19."
  ,showonce     = true
}

metro = scene {
   tile         = { tile "metro", 0, 20 }
  ,bounds       = { 300, 360, 600 }
  ,dsc          = choose_ {
                     ["default"] = "Вдалеке виднеется большая буква М -- спуск в метро. Катя явно пошла не в ту сторону, или же аптека все-таки находится на другой улице, но тогда бессмысленно ее искать.^^"
                    ,["metro._seen"] = "Вдалеке виднеется большая буква М -- спуск в метро."
                  }
  ,alwaysdsc    = true
  ,obj          = { "metro_sign" }
  ,nav          = {
                    right = vw("Вверх по улице", "out2")
                  }
}

metro_sign = staticitem {
   dsc          = "На стене дома висит {вывеска} с названием улицы."
  ,act          = "Ул. Пригожева, 3."
  ,showonce     = true
}

out3 = scene {
   tile         = tile "shadowstreet1"
  ,bounds       = { 280, 50, 580 }
  ,obj          = { "out3_sign" }
  ,dsc          = [[Ветер дует Кате в спину и как будто подгоняет ее вперед. Кажется, в любую минуту может начаться дождь.^^]]
  ,nav          = {
                     right = vw("Вверх по улице", "out4")
                    ,left = vw("Вниз по улице", "out1")
                  }
}

out3_sign = staticitem {
   dsc          = "На стене дома висит {вывеска} с названием улицы."
  ,act          = "Ул. Садовническая, 23."
  ,showonce     = true
}

out4 = scene {
   tile         = { tile "shadowstreet4", 0, 20 }
  ,bounds       = { nil, 540 }
  ,dsc          = [[На стене здания висит едва заметная вывеска -- Аптека.]]
  ,alwaysdsc    = true
  ,nav          = {
                     up = vw("В аптеку", "drugstore")
                    ,left = vw("Вниз по улице", "out3")
                  }
}

drugstore = scene {
   tile         = tile "drugstore"
  ,bounds       = { 230, 200, 620 }
  ,dsc          = [[В аптеке совсем нет посетителей. В нос сильно бьет едкий прожигающий запах, похожий, как почему-то кажется Кате, на запах формалина.]]
  ,alwaysdsc    = true
  ,obj          = { "drugwoman" }
  ,nav          = {
                    down = vw("Выйти", "out4")
                  }
}

drugwoman = staticitem {
   dsc          = "За стойкой сидит {женщина} в мятом белом халате."
  ,act          = walk_("drugwoman_dlg")
}

drugwoman_dlg = dialog {
   tile         = tile "drugstore"
  ,bounds       = { 230, 200, 620 }
  ,dsc          = "-- Да? Вы что-то хотели?"
  ,dlg          = dxml "drugwoman"
}

street1 = pause {
   time         = 3000
  ,next         = "street2"
}

street2 = cutscene {
   tile         = { ka_tile "katewalk", 694, 100 }
  ,bounds       = { nil, nil, 680 }
  ,dsc          = [[Начался дождь, и стало темно, как ночью. В лицо Кате дул порывистый холодный ветер. Катя вдруг подумала,
                    что, хотя еще на исходе август, лето уже давно завершилось, и во всем этом промозглом городе чувствуется
                    неумолимое приближение зимы. 
                    ^Куртка Кати насквозь промолка от дождя.]]
  ,alwaysdsc    = true
  ,next         = "street3"
}

street3 = cutscene {
   tile         = { ka_tile "katewalk", 694, 100 }
  ,bounds       = { nil, nil, 680 }
  ,dsc          = [[Людей на улице совсем не было, как будто комендантский час давно уже начался. Катя невольно оглядывалась по сторонам, 
                    ожидая в любую минуту увидеть полицейский патруль
                    или зависшее над тротуаром око, как если бы ее старенькие электронные часы вдруг начали своенравно перевирать
                    время, скрывая от нее то, что на город уже опустилась глубокая ночь.]]
  ,alwaysdsc    = true
  ,next         = "street4"
}

street4 = cutscene {
   tile         = { tile "metro", 300, 20 }
  ,bounds       = { 350, 380, 600 }
  ,dsc          = [[Вскоре Катя была уже у станции метро.]]
  ,alwaysdsc    = true
  ,next         = "descend1"
}

descend1 = pause {
   time         = 500
  ,next         = "descend2"
}

descend2 = slidedown {
   fps          = 1
  ,x            = 0
  ,y            = 480
  ,step         = 40
  ,tile         = sb_tile "stairs"
  ,next         = "main"
}